package edu.nf.ch09.service;

import org.springframework.context.annotation.Scope;
import org.springframework.context.annotation.ScopedProxyMode;
import org.springframework.stereotype.Service;

/**
 * @author wangl
 * @date 2025/4/29
 */
@Service
/**
 * 通过@Scope注解来设置作用域,取值为singleton或prototype。
 * 注意：当高层模块是单例，注入的低层模块是一个原型的时候，
 * 此时的原型并不会生效。如果想要让这个原型生效则需要设置
 * proxyMode属性。这样在注入到高层模块时，会先注入一个代理，
 * 再通过代理构建新的低层模块对象。
 */
@Scope(value = "prototype", proxyMode = ScopedProxyMode.TARGET_CLASS)
public class UserService {

    public void add() {
        System.out.println("Add user.");
    }
}